/*
Copyright [2020] [https://www.xiaonuo.vip]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Snowy采用APACHE LICENSE 2.0开源协议，您在使用过程中，需要注意以下几点：

1.请不要删除和修改根目录下的LICENSE文件。
2.请不要删除和修改Snowy源码头部的版权声明。
3.请保留源码和相关描述文件的项目出处，作者声明等。
4.分发源码时候，请注明软件出处 https://gitee.com/xiaonuobase/snowy
5.在修改包名，模块名称，项目代码等时，请注明软件出处 https://gitee.com/xiaonuobase/snowy
6.若您的项目无法满足以上几点，可申请商业授权，获取Snowy商业授权许可，请在官网购买授权，地址为 https://www.xiaonuo.vip
 */
package vip.xiaonuo.app.modular.appuser.param.mgr;

import vip.xiaonuo.core.pojo.base.param.BaseParam;
import lombok.Data;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigDecimal;

/**
* app用户表参数类
 *
 * @author 郑雄伟
 * @date 2023-09-20 15:12:16
*/
@Data
public class AppUserParam extends BaseParam {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空，请检查id参数", groups = {edit.class, delete.class, detail.class})
    private Long id;

    /**
     * 登录名称 即为：手机号
     */
    @NotBlank(message = "登录名称 即为：手机号不能为空，请检查loginName参数", groups = {add.class, edit.class})
    private String loginName;

    /**
     * 密码
     */
    @NotBlank(message = "密码不能为空，请检查passWord参数", groups = {add.class, edit.class})
    private String passWord;

    /**
     * 用户唯一编码
     */
    @NotNull(message = "用户唯一编码不能为空，请检查userCode参数", groups = {add.class, edit.class})
    private Integer userCode;

    /**
     * 身份唯一邀请码
     */
    @NotBlank(message = "身份唯一邀请码不能为空，请检查inviteCode参数", groups = {add.class, edit.class})
    private String inviteCode;

    /**
     * 腾讯生成编码ID 9位 IM使用
     */
    @NotNull(message = "腾讯生成编码ID 9位 IM使用不能为空，请检查txCode参数", groups = {add.class, edit.class})
    private Integer txCode;

    /**
     * 是否完善过基础信息   1已完善  2 未完善
     */
    @NotNull(message = "是否完善过基础信息   1已完善  2 未完善不能为空，请检查isComplete参数", groups = {add.class, edit.class})
    private Integer isComplete;

    /**
     * 头像id
     */
    @NotNull(message = "头像id不能为空，请检查headPicId参数", groups = {add.class, edit.class})
    private Long headPicId;

    /**
     * 昵称
     */
    @NotBlank(message = "昵称不能为空，请检查nick参数", groups = {add.class, edit.class})
    private String nick;

    /**
     * 性别：1男 2女
     */
    @NotNull(message = "性别：1男 2女不能为空，请检查sex参数", groups = {add.class, edit.class})
    private Integer sex;

    /**
     * 签名
     */
    @NotBlank(message = "签名不能为空，请检查sign参数", groups = {add.class, edit.class})
    private String sign;

    /**
     * 生日
     */
    @NotNull(message = "生日不能为空，请检查birthday参数", groups = {add.class, edit.class})
    private String birthday;

    /**
     * 身高id
     */
    @NotNull(message = "身高id不能为空，请检查heightId参数", groups = {add.class, edit.class})
    private Integer heightId;

    /**
     * 体重id
     */
    @NotNull(message = "体重id不能为空，请检查weightId参数", groups = {add.class, edit.class})
    private Integer weightId;

    /**
     * 职业id
     */
    @NotNull(message = "职业id不能为空，请检查careerId参数", groups = {add.class, edit.class})
    private Integer careerId;

    /**
     * 收入id
     */
    @NotNull(message = "收入id不能为空，请检查incomeId参数", groups = {add.class, edit.class})
    private Integer incomeId;

    /**
     * 标签id 数组 英文逗号隔开
     */
    @NotBlank(message = "标签id 数组 英文逗号隔开不能为空，请检查tagIds参数", groups = {add.class, edit.class})
    private String tagIds;

    /**
     * 学历id
     */
    @NotNull(message = "学历id不能为空，请检查educId参数", groups = {add.class, edit.class})
    private Integer educId;

    /**
     * 省份id
     */
    @NotNull(message = "省份id不能为空，请检查prId参数", groups = {add.class, edit.class})
    private Integer prId;

    /**
     * 城市id
     */
    @NotNull(message = "城市id不能为空，请检查cityId参数", groups = {add.class, edit.class})
    private Integer cityId;

    /**
     * 区id
     */
    @NotNull(message = "区id不能为空，请检查distId参数", groups = {add.class, edit.class})
    private Integer distId;

    /**
     * 形象id 数组 英文逗号隔开
     */
    @NotBlank(message = "形象id 数组 英文逗号隔开不能为空，请检查introPicIds参数", groups = {add.class, edit.class})
    private String introPicIds;

    /**
     * 经度
     */
    @NotNull(message = "经度不能为空，请检查lon参数", groups = {add.class, edit.class})
    private BigDecimal lon;

    /**
     * 维度
     */
    @NotNull(message = "维度不能为空，请检查lat参数", groups = {add.class, edit.class})
    private BigDecimal lat;

    /**
     * 状态（字典 0正常 1冻结 2删除）
     */
    @NotNull(message = "状态（字典 0正常 1冻结 2删除）不能为空，请检查status参数", groups = {add.class, edit.class})
    private Integer status;

    /**
     * 登录次数
     */
    @NotNull(message = "登录次数不能为空，请检查loginNum参数", groups = {add.class, edit.class})
    private Integer loginNum;

    /**
     * 最后登陆IP
     */
    @NotBlank(message = "最后登陆IP不能为空，请检查lastLoginIp参数", groups = {add.class, edit.class})
    private String lastLoginIp;

    /**
     * 最后登陆时间
     */
    @NotNull(message = "最后登陆时间不能为空，请检查lastLoginTime参数", groups = {add.class, edit.class})
    private String lastLoginTime;

}
